perm filename MINE[AI,JMC] blob
sn#005450 filedate 1971-08-13 generic text, type T, neo UTF8
00100 MKMOV: AOS 1,LEVEL
00150 TRZ FL,ATON+GENFL
00200 CAILE 1,4
00300 TRO FL,ATON
00400 FL=10
00500 ATON=1
00600 CAILE 1,2
00700 TRO FL,GENFL
00800 GENFL=2
00850 PUSHJ P,GENPN
00900 MOVE MOVER,COLOR
01000 HRLI MOVER,-20
01100 PUSHJ P,@GMTB(MOVER)
01200 AOBJN MOVER,.-1
01300 TRNN FL,ATON
01400 JRST MINMAX
01500 MOVE 1,LLIM
01600 CAMGE 1,ULIM
01700 JRST MINMAX
01800 MOVE WCOUNT
01900 SUB BCOUNT
02000 SKIPE MCOL
02100 MOVNS
02200 POPJ P,
02300 GMTB: REPEAT 2,<EXP GMV,GMVN,GMV,GMV,GMVK,GMV,GMVN,GMV
02400 REPEAT 10,<EXP GMVP>>
02500 MINMAX: MOVE I,LLIM
02510 CAML I,ULIM
02520 JRST EV2
02600 MM1: CAML I,ULIM
02700 JRST ENDMV
02800 MOVE DEST,1(I)
02900 MOVE MOVER,DEST
03000 LSH MOVER,-6
03050 ANDI MOVER,37
03100 ANDI DEST,77
03200 PUSH P,I
03300 PUSH P,LEVEL
03400 PUSH P,ULIM
03500 MOVE 1,LLIM
03700 MOVEM 1,ULIM
03800 PUSH P,ALPHA
03900 PUSH P,BETA
04000 PUSH P,LLIM
04100 PUSH P,COLOR
04200 MOVEI 20
04300 XORM COLOR
04400 PUSH P,FL
00100 JSR GOMOV2
00200 SKIPL BCOUNT
00300 SKIPGE WCOUNT
00400 JRST EVALR
00500 PUSHJ P,MKMOV
00600 JSR REVRT
00700 M31: POP P,FL
00800 POP P,COLOR
00900 POP P,LLIM
01000 POP P,BETA
01100 POP P,ALPHA
01200 POP P,ULIM
01300 POP P,LEVEL
01400 POP P,I
01450 PUSHJ P,PRTRE
01500 M22: MOVE 1,LEVEL
01600 TRNE 1,1
01700 JRST MAXIT
01800 CAMG BETA
01900 JRST RMINF
02000 CAML ALPHA
02100 AOJA I,MM1
02200 MOVEM ALPHA
02300 MOVE DEST,1(I)
02400 MOVEM DEST,MTB(1)
02500 CAME BETA
02600 AOJA I,MM1
02700 JRST ENDMV
02800 MAXIT: CAML ALPHA
02900 JRST RINF
03000 CAMG BETA
03100 AOJA I,MM1
03200 MOVEM BETA
03300 MOVE DEST,1(I)
03400 MOVEM DEST,MTB(1)
03500 CAME ALPHA
03600 AOJA I,MM1
03700 ENDMV: MOVE ALPHA
03750 MOVE 1,LEVEL
03800 TRNE 1,1
03900 MOVE BETA
04000 POPJ P,
04100 EVALR: MOVE WCOUNT
04200 SUB BCOUNT
04300 SKIPE MCOL
04400 MOVNS
04800 JRST M31-1
04900 EV2: MOVE WCOUNT
05000 SUB BCOUNT
05100 SKIPE MCOL
05200 MOVNS
05300 POPJ P,
00100 RINF: MOVE ALPHA
00200 POPJ P,
00300 RMINF: MOVE BETA
00400 POPJ P,
00450 GOMOV2: 0
00500 SKIPGE T1,OCC(DEST)
00600 JRST GMV21
00700 PUSH P,T1
00800 PUSH P,DEST
00900 PUSH P,MOVER
00950 MOVE MOVER,T1
01000 MOVNI DEST,1
01050 PUSH P,FL
01060 ANDI MOVER,37
01100 PUSHJ P,PUTCH
01150 POP P,FL
01200 POP P,MOVER
01300 MOVE DEST,(P)
01400 MVMD1=4
01500 TROA FL,MVMD1
01600 GMV21: TRZ FL,MVMD1
01700 PUSH P,FL
01800 PUSH P,LOC(MOVER)
01850 PUSH P,MOVER
01860 ANDI MOVER,37
01870 ANDI DEST,77
01900 PUSHJ P,PUTCH
01950 JRST @GOMOV2
01975 REVRT: 0
01980 POP P,MOVER
02000 POP P,DEST
02010 ANDI MOVER,37
02020 ANDI DEST,77
02100 PUSHJ P,PUTCH
02200 POP P,FL
02300 TRZN FL,MVMD1
02400 JRST @REVRT
02500 POP P,DEST
02600 POP P,MOVER
02650 PUSH P,FL
02660 ANDI MOVER,37
02670 ANDI DEST,77
02700 PUSHJ P,PUTCH
02725 POP P,FL
02750 JRST @REVRT
02900 GMV: MOVE I,LM(MOVER)
03000 HLRE M,I
03100 JRST PLG4
03200 PLG2: ADDI I,10
03300 ANDI I,-10
03400 PLG4: SKIPGE T1,MOVE(I)
03500 JRST PLG3
03510 PLG1: ANDI T1,77
03520 SKIPGE T2,OCC(T1)
03530 JRST .+4
03540 XOR T2,MOVER
03550 TRNN T2,20
03560 JRST PLG3-2
03600 SETZM COUNT
03700 HRLZI K,NPNM
03800 TRNE FL,ATON
03900 MOVE K,[XWD -1,2]
04000 PUSHJ P,@GENTB(K)
04100 AOBJN K,.-1
04200 PUSHJ P,FILL
04250 SKIPL T1,MOVE+1(I)
04300 AOJA I,PLG1
04400 PLG3: AOJL M,PLG2
04500 POPJ P,
00100 GMVN: MOVE I,LM(MOVER)
00200 MOVNI M,1
00300 JRST PLG4
00400 GMVK: MOVE I,LM(MOVER)
00500 SETZM COUNT
00600 SKIPGE T1,MOVE(I)
00700 JRST GMVK1
00710 ANDI T1,77
00720 SKIPGE T2,OCC(T1)
00730 JRST .+4
00740 XOR T2,MOVER
00750 TRNN T2,20
00760 JRST GMVK1
00800 HRLZI K,NPNM
00900 TRNE FL,ATON
01000 MOVE K,[XWD -1,2]
01100 PUSHJ P,@GENTB(K)
01200 AOBJN K,.-1
01300 PUSHJ P,FILL
01400 GMVK1: ADDI I,7
01500 AOBJN I,GMVK+1
01600 POPJ P,
01700 GMVP: HRRZ I,LM(MOVER)
01800 SKIPGE T1,MOVE(I)
01850 JRST GMVP2
01900 ANDI T1,77
02000 SKIPGE T2,OCC(T1)
02100 JRST GMVP2
02110 XOR T2,MOVER
02120 TRNN T2,20
02130 JRST GMVP2
02200 HRLZI K,NPNM
02300 TRNE FL,ATON
02400 MOVE K,[XWD -1,2]
02450 SETZM COUNT
02500 PUSHJ P,@GENTB(K)
02600 AOBJN K,.-1
02700 PUSHJ P,FILL
02800 GMVP2: SKIPGE T1,MOVE+1(I)
02850 JRST GMVP3
02900 ANDI T1,77
03000 SKIPGE T2,OCC(T1)
03100 JRST GMVP3
03110 XOR T2,MOVER
03120 TRNN T2,20
03130 JRST GMVP3
03200 HRLZI K,NPNM
03300 TRNE FL,ATON
03400 MOVE K,[XWD -1,2]
03450 SETZM COUNT
03500 PUSHJ P,@GENTB(K)
03600 AOBJN K,.-1
03700 PUSHJ P,FILL
03800 GMVP3: TRNE FL,ATON
03900 POPJ P,
04000 SKIPGE T1,MOVE+2(I)
04050 POPJ P,
04100 ANDI T1,77
04200 SKIPL OCC(T1)
04300 POPJ P,
04400 HRLZI K,NPNM
04450 SETZM COUNT
04500 PUSHJ P,@GENTB(K)
04600 AOBJN K,.-1
04700 PUSHJ P,FILL
04800 SKIPGE T1,MOVE+3(I)
04900 POPJ P,
05000 ANDI T1,77
00100 SKIPL OCC(T1)
00200 POPJ P,
00300 HRLZI K,NPNM
00350 SETZM COUNT
00400 PUSHJ P,@GENTB(K)
00500 AOBJN K,.-1
00600 JRST FILL
00700 GENTB: EXP GEN1,GEN2,GEN6,GEN5,GEN9,GEN3,GEN4,GEN8,GEN7
00800 NPNM=-11
00900 GEN1: ANDI T1,77
01000 SKIPGE T2,OCC(T1)
01100 POPJ P,
01200 SKIPE DEF(T2)
01300 POPJ P,
01400 ANDI T2,20
01500 CAME T2,COLOR
01550 ADDI COUNT,↑D1000
01600 POPJ P,
01700 COUNT=1
01800 GEN2: SKIPGE T2,OCC(T1)
01900 POPJ P,
02000 MOVE B,KIND(MOVER)
02100 MOVE B,VALUE(B)
02200 MOVE MDIR,KIND(T2)
02300 CAML B,VALUE(MDIR)
02400 POPJ P,
02500 ANDI T2,20
02600 CAME T2,COLOR
02700 ADDI COUNT,↑D400
02800 POPJ P,
02900 GEN3: SKIPGE COUNT
02950 POPJ P,
03000 MOVE B,COLOR
03100 TRC B,24
03200 MOVE B,ATT(B)
03300 CAIL B,2
03400 ADDI COUNT,20
03500 POPJ P,
00100 GEN4: SKIPGE COUNT
00105 POPJ P,
00110 MOVE ATT(MOVER)
00120 SUB DEF(MOVER)
00130 JUMPG F3
00200 MOVNI B,2
00300 MOVEM B,BEARS#
00400 JRST @GTHRT(MOVER)
00500 GTHRT: REPEAT 2,<EXP GTHR,GTHN,GTHR,GTHR,GTHK,GTHR,GTHN,GTHR
00600 REPEAT 10,<EXP GTHP>>
00700 GTHR: MOVE B,LM(MOVER)
00800 HLRE M,B
00900 JRST PLT4
01000 PLT2: ADDI B,10
01100 ANDI B,-10
01200 PLT4: SKIPGE I,MOVE(B)
01300 JRST PLT3
01400 PLT1: ANDI I,77
01500 SKIPGE I,OCC(I)
01600 JRST PLT3-2
01700 ANDI I,20
01800 CAME I,COLOR
01900 AOS BEARS
01950 SKIPL I,MOVE+1(B)
02000 AOJA B,PLT1
02100 PLT3: AOJL M,PLT2
02200 QTHR: SKIPL BEARS
02300 ADDI COUNT,↑D10
02400 POPJ P,
02500 GTHN: MOVE B,LM(MOVER)
02600 MOVNI M,1
02700 JRST PLT4
02800 GTHK: MOVE B,LM(MOVER)
02900 SKIPGE I,MOVE(B)
03000 JRST GTHK1
03100 ANDI I,77
03200 SKIPGE I,OCC(I)
03300 JRST GTHK1
03400 ANDI I,20
03500 CAME I,COLOR
03600 AOS BEARS
03700 GTHK1: ADDI I,7
03800 AOBJN I,GTHK+1
03900 JRST QTHR
04000 GTHP: HRRZ B,LM(MOVER)
04100 SKIPGE I,MOVE(B)
04150 POPJ P,
04200 ANDI I,77
04300 SKIPGE I,OCC(I)
00100 POPJ P,
00200 ANDI I,20
00300 CAME I,COLOR
00400 POPJ P,
00500 SKIPGE I,MOVE+1(B)
00550 POPJ P,
00600 ANDI I,77
00700 SKIPGE I,OCC(I)
00800 POPJ P,
00900 ANDI I,20
01000 CAME I,COLOR
01100 POPJ P,
01200 ADDI COUNT,↑D10
01300 POPJ P,
01400 GEN5: TRZ FL,YSTH
01500 SETZM THTB
01600 MOVE B,[XWD THTB,THTB+1]
01700 BLT B,THTB+37
01800 MOVE B,COLOR
01900 HRLI B,-20
02000 GN5A: MOVE MDIR,ATT(B)
02100 SUB MDIR,DEF(B)
02200 SKIPLE MDIR
02300 MOVEM MDIR,THTB(B)
02400 AOBJN B,GN5A
02500 JSR GOMOV
02600 MOVE B,COLOR
02700 HRLI B,-20
02800 TRZ FL,YSTH
02900 YSTH=10
03000 GN5B: MOVE MDIR,ATT(B)
03100 SUB MDIR,DEF(B)
03120 SKIPN THTB(B)
03140 JRST GN5C
03200 CAMGE MDIR,THTB(B)
03300 TROA FL,YSTH
03400 GN5C: AOBJN B,GN5B
03500 TRZE FL,YSTH
03600 ADDI COUNT,↑D4
03700 POPJ P,
03800 GEN6: ANDI T1,77
03900 SKIPGE T2,OCC(T1)
04000 POPJ P,
04100 ANDI T2,20
04200 CAMN T2,COLOR
04400 POPJ P,
04500 MOVE T2,OCC(T1)
04600 MOVE T2,KIND(T2)
04700 MOVE T2,VALUE(T2)
04800 MOVE BCOUNT
04900 SUB WCOUNT
05000 SKIPN MCOL
05100 MOVNS
05200 SKIPN COLOR
05300 ADD T2
05400 SKIPE COLOR
05500 SUB T2
05510 MOVE B,LEVEL
05520 TRNN B,1
05530 JRST GEN6A
05600 CAMLE BETA
05700 ADDI COUNT,↑D2
05800 POPJ P,
05900 GEN6A: CAMGE ALPHA
06000 ADDI COUNT,2
06100 POPJ P,
00100 GEN7: SKIPGE COUNT
00150 JRST UNMOVE
00200 MOVE B,COLOR
00300 TRC B,24
00400 SKIPE ATT(B)
00500 ADDI COUNT,1
00600 JRST UNMOVE
01210 FILL: SKIPGE COUNT
01220 POPJ P,
01300 TRNE FL,GENFL
01400 JUMPE COUNT,F3
01500 PUSH P,MOVER
01600 LSH MOVER,6
01700 IOR MOVER,T1
01800 HRL MOVER,COUNT
01900 MOVE COUNT,LLIM
02000 SUB COUNT,ULIM
02200 JUMPE COUNT,INST2
02300 HRLS COUNT
02400 HRR COUNT,LLIM
02500 FILL1: CAML MOVER,1(COUNT)
02600 JRST INST
02700 AOBJN COUNT,FILL1
02750 MOVE COUNT,ULIM
02800 INST: MOVE B,LLIM
02900 SUBI B,1
03000 HRL B,LLIM
03100 BLT B,(COUNT)
03200 INS3: MOVEM MOVER,(COUNT)
03300 SOS LLIM
03400 POP P,MOVER
03500 F3: POPJ P,
03600 INST2: MOVE COUNT,LLIM
03700 JRST INS3
03750 GOMOV: 0
03760 POP P,SVITRT#
03800 MOVEM MOVER,SVMVR#
03900 PUSH P,I
04000 MOVEM K,SVK#
04100 PUSH P,M
04200 MOVEM T1,SVT1#
04250 MOVE DEST,T1
04300 SKIPGE T1,OCC(DEST)
04400 JRST GMV1
04500 PUSH P,T1
04600 PUSH P,DEST
04700 PUSH P,MOVER
04750 MOVE MOVER,T1
04800 MOVNI DEST,1
04850 PUSH P,FL
04860 ANDI MOVER,37
04900 PUSHJ P,PUTCH
04950 POP P,FL
05000 POP P,MOVER
05100 MOVE DEST,(P)
05200 MVMD2=20
05300 TROA FL,MVMD2
05400 GMV1: TRZ FL,MVMD2
05500 PUSH P,FL
05600 PUSH P,LOC(MOVER)
05650 PUSH P,MOVER
05660 ANDI MOVER,37
05670 ANDI DEST,77
05700 PUSHJ P,PUTCH
05710 PUSH P,SVITRT
05720 MOVE K,SVK
05730 MOVE T1,SVT1
05740 MOVE MOVER,SVMVR
05750 JRST @GOMOV
00010 UNMOVE: POP P,SVITRT
00020 MOVEM K,SVK
00030 MOVEM T1,SVT1
00040 MOVEM MOVER,SVMVR
00050 POP P,MOVER
00100 POP P,DEST
00110 ANDI MOVER,37
00120 ANDI DEST,77
00200 PUSHJ P,PUTCH
00300 POP P,FL
00400 TRZN FL,MVMD2
00500 JRST UMV1
00600 POP P,DEST
00700 POP P,MOVER
00750 PUSH P,FL
00760 ANDI MOVER,37
00770 ANDI DEST,77
00800 PUSHJ P,PUTCH
00850 POP P,FL
00900 UMV1: MOVE T1,SVT1
01000 POP P,M
01100 MOVE K,SVK
01150 POP P,I
01200 MOVE MOVER,SVMVR
01300 JRST @SVITRT
01400 MTB: BLOCK 100
01500 THTB: BLOCK 40
01600 MVTB: BLOCK 4000
01700 PRTRE: PUSH P,0
01800 PUSH P,I
01850 PUSH P,I+1
01900 MOVE K,LEVEL
02000 MOVE B,I
02100 SOJE K,NTAB
02200 MOVEI 11
02300 PUSHJ P,OCHR
02400 SOJG K,.-2
02500 NTAB: MOVE 2,1(B)
02600 LSH 2,-6
02700 ANDI 2,37
02800 PUSHJ P,PPRNT
02900 MOVEI "-"
03000 PUSHJ P,OCHR
03100 MOVE I,1(B)
03200 ANDI I,77
03300 PUSHJ P,NOUT1
03400 MOVEI " "
03500 PUSHJ P,OCHR
00100 HLRZ I,1(B)
00200 PUSHJ P,NOUT2
00300 MOVEI " "
00400 PUSHJ P,OCHR
00500 MOVE I,-2(P)
00600 JUMPGE I,NONEG
00700 MOVEI "-"
00800 PUSHJ P,OCHR
00900 MOVNS I
01000 NONEG: PUSHJ P,NOUT2
01100 MOVEI " "
01150 PUSHJ P,OCHR
01200 MOVE I,ALPHA
01300 JUMPGE I,NONEG1
01400 MOVEI "-"
01500 PUSHJ P,OCHR
01600 MOVNS I
01700 NONEG1: PUSHJ P,NOUT2
01800 MOVEI " "
01850 PUSHJ P,OCHR
01900 MOVE I,BETA
02000 JUMPGE I,NONEG2
02100 MOVEI "-"
02200 PUSHJ P,OCHR
02300 MOVNS I
02400 NONEG2: PUSHJ P,NOUT2
02500 MOVEI 1,CMS
02600 PUSHJ P,TXTOUT
02650 POP P,I+1
02700 POP P,I
02800 POP P,0
02900 POPJ P,
03000 GENPN: SETZM PINTB
03100 MOVE B,[XWD PINTB,PINTB+1]
03200 BLT B,PINTB+37
03300 HRLZI MDIR,-100
03400 SKIPN COLOR
03500 HRRI MDIR,100
03600 GPNS2: SKIPGE T2,KDIR(MDIR)
03700 JRST GPNS1
03800 LSH T2,6
03900 IORI T2,(MDIR)
04000 SKIPGE DIR,JBEAR(T2)
00100 JRST GPNS1
00200 MOVE B,DIR
00300 ANDI B,20
00400 CAMN B,COLOR
00500 JRST GPNS1
00600 LSH T2,-6
00700 MOVE N,KIND(DIR)
00800 CAIE N,QUEEN
00900 CAMN N,PINTB2(T2)
01000 SETOM PINTB(DIR)
01100 GPNS1: AOBJN MDIR,GPNS2
01200 POPJ P,
01300 PINTB: BLOCK 40
01400 PINTB2: REPEAT 4,<EXP ROOK,BISHOP>
01500 GEN9: MOVE I,COLOR
01600 ADDI I,4
01700 SKIPE ATT(I)
01800 SUBI COUNT,-1
01900 POPJ P,
02000 GEN8: SKIPGE COUNT
02010 POPJ P,
02012 SETZM ATUDF#
02014 SETZM ATPN#
02016 SETZM ATHV#
02020 JRST @GATKB(MOVER)
02100 GATKB: REPEAT 2,<EXP GATR,GATN,GATR,GATR,GATK,GATR,GATN,GATR
02200 REPEAT 10,<EXP GATP>>
02300 GATR: MOVE B,LM(MOVER)
02400 HLRE M,B
02500 JRST PLAT4
02600 PLAT2: ADDI B,10
02700 ANDI B,-10
02800 PLAT4: SKIPGE I,MOVE(B)
02900 JRST PLAT3
03000 PLAT1: ANDI I,77
03100 SKIPGE I,OCC(I)
03200 JRST PLAT3-2
03300 MOVE MDIR,I
03400 ANDI MDIR,20
03500 CAMN MDIR,COLOR
03600 JRST PLAT3-2
03700 SKIPGE PINTB(I)
03800 AOS ATPN
03900 SKIPN DEF(I)
04000 AOS ATUDF
04100 MOVE MDIR,KIND(MOVER)
04200 MOVE MDIR,VALUE(MDIR)
04300 MOVE I,KIND(I)
04400 CAMGE MDIR,VALUE(I)
04500 AOS ATHV
00100 SKIPL I,MOVE+1(B)
00200 AOJA B,PLAT1
00300 PLAT3: AOJL M,PLAT2
00400 JRST FNOUT
00500 GATN: MOVE B,LM(MOVER)
00600 MOVNI M,1
00700 JRST PLAT4
00800 GATK: MOVE B,LM(MOVER)
00900 SKIPGE I,MOVE(B)
01000 JRST GATK1
01100 ANDI I,77
01200 SKIPGE I,OCC(I)
01300 JRST GATK1
01400 MOVE MDIR,I
01500 ANDI MDIR,20
01600 CAMN MDIR,COLOR
01700 JRST GATK1
01800 SKIPGE PINTB(I)
01900 AOS ATPN
02000 SKIPN DEF(I)
02100 AOS ATUDF
02200 MOVE MDIR,KIND(MOVER)
02300 MOVE MDIR,VALUE(MDIR)
02400 MOVE I,KIND(I)
02500 CAMGE MDIR,VALUE(I)
02600 AOS ATHV
02700 GATK1: ADDI I,7
02800 AOBJN I,GATK+1
02900 JRST FNOUT
03000 GATP: HRRZ B,LM(MOVER)
03100 SKIPGE I,MOVE(B)
03200 JRST GATP2
03300 ANDI I,77
03400 SKIPGE I,OCC(I)
03500 JRST GATP2
03600 MOVE MDIR,I
03700 ANDI MDIR,20
03800 CAME MDIR,COLOR
03900 JRST GATP2
04000 SKIPGE PINTB(I)
04100 AOS ATPN
04200 SKIPN DEF(I)
04300 AOS ATUDF
04400 MOVE MDIR,KIND(MOVER)
04500 MOVE MDIR,VALUE(MDIR)
04600 MOVE I,KIND(I)
04700 CAMGE MDIR,VALUE(I)
04800 AOS ATHV
00100 GATP2: SKIPGE I,MOVE+1(B)
00200 POPJ P,
00300 ANDI I,77
00400 SKIPGE I,OCC(I)
00500 POPJ P,
00600 MOVE MDIR,I
00700 ANDI MDIR,20
00800 CAME MDIR,COLOR
00900 POPJ P,
01000 SKIPGE PINTB(I)
01100 AOS ATPN
01200 SKIPN DEF(I)
01300 AOS ATUDF
01400 MOVE MDIR,KIND(MOVER)
01500 MOVE MDIR,VALUE(MDIR)
01600 MOVE I,KIND(I)
01700 CAMGE MDIR,VALUE(I)
01800 AOS ATHV
01900 FNOUT: SKIPE ATPN
02000 ADDI COUNT,200
02100 SKIPE ATUDF
02200 ADDI COUNT,40
02300 SKIPE ATHV
02400 ADDI COUNT,100
02500 POPJ P,